﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Zhao.Common.Helper;
using Zhao.Models.DTO;
using Zhao.Models.Entity;

namespace Zhao.IServer.User
{
    public interface IAdminServer : IBaseService<Admin>
    {
        /// <summary>
        /// 删除管理员(软删)
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<bool> DelAdmin(int Id);
        /// <summary>
        /// 查询管理员数据
        /// </summary>
        /// <param name="expressionable"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        public Task<PageModel<AdminDto>> GetPageAdmin(Expression<Func<Admin, Roles, Venues, bool>> expressionable, int pageIndex, int pageSize);

        /// <summary>
        /// 登录 返回当前登陆人详情信息
        /// </summary>
        /// <param name="account"></param>
        /// <param name="paw"></param>
        /// <returns></returns>
        Task<AdminInfoDto> Login(string account, string paw,string ip);

        /// <summary>
        /// 返回个人详情信息（个人中心使用）
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Task<AdminDto> ByIdAdminInfo(int id);
        /// <summary>
        /// 修改管理员个人资料(按需修改)
        /// </summary>
        /// <returns></returns>
        public Task<bool> UpdateIndividualInfo(AdminInfoDto dto);
        /// <summary>
        /// 返回个人详情信息（个人中心使用 ||球馆管理员）
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Task<AdminDto> ByIdAdminVenuInfo(Guid guid, int id);
    }
}
